<!DOCTYPE html>
<html>
<head>
  <link href="qunit/qunit.css" rel="stylesheet" type="text/css" />
  <script src="qunit/qunit.js"></script>
  <!-- Add source files here as necessary.  There are the raw source files,
  and they have not been compiled of wrapped in a closure.  Include them in the
  order that they should be included in.  If you are following the template's
  pattern, the init file MUST be loaded last. -->
  <script src="../src/ndeflibrary.const.js"></script>
  <script src="../src/ndeflibrary.core.js"></script>
  <script src="../src/ndeflibrary.module.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefRecord.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefUriRecord.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefAndroidAppRecord.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefMessage.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefTelRecord.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefGeoRecord.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefSocialRecord.js"></script>
  <script src="../src/submodule/ndeflibrary.NdefTextRecord.js"></script>
  <script src="../src/ndeflibrary.init.js"></script>
  <script>
  </script>
</head>
<body>
  <h1 id="qunit-header">NdefMessage Unit Tests</h1>
   <h2 id="qunit-banner"></h2>
   <div id="qunit-testrunner-toolbar"></div>
   <h2 id="qunit-userAgent"></h2>
   <ol id="qunit-tests"></ol>
   <div id="qunit-fixture"></div>
   <script>
   (function () {

     module('NdefMessage Constructor');
     
     test('NdefMessage 1', function() {
     	var ndefMessage = new NdefLibrary.NdefMessage();
     	
     	notEqual(ndefMessage, null);
     });
     
     module('Array');
     test('NdefMessage Array Modifications', function() {
     	var ndefMessage = new NdefLibrary.NdefMessage();
     	var ndefRecord = new NdefLibrary.NdefRecord();
     	var array = new Array(1,3,1,3);
    	var ndefRecord2 = new NdefLibrary.NdefRecord(NdefLibrary.NdefRecord.TypeNameFormatType.NfcRtd, array);
     	
     	
     	equal(ndefMessage.length(), 0);
     	ndefMessage.clear();
     	equal(ndefMessage.length(), 0);
     	
     	equal(ndefMessage.length(), 0);
     	ndefMessage.push(ndefRecord);
     	equal(ndefMessage.length(), 1);
     	ndefMessage.clear();
     	equal(ndefMessage.length(), 0);
     	ndefMessage.push(ndefRecord);
     	ndefMessage.push(ndefRecord);
     	ndefMessage.push(ndefRecord2);
     	equal(ndefMessage.length(), 3);
     	
     	equal(ndefMessage.getRecords()[2],ndefRecord2);
     });
     
     module('Methods');
     
     test('toByteArray', function() {
     	var ndefMessage = new NdefLibrary.NdefMessage();
     	var ndefMessage2 = new NdefLibrary.NdefMessage();
     	var ndefRecord = new NdefLibrary.NdefRecord();
     	
     	ndefMessage2.push(ndefRecord);
     	deepEqual(ndefMessage.toByteArray(), ndefMessage2.toByteArray());
     	
     	var recrodType = new Array(1,3,1,3,5,6,7);
     	var recrodPayload = new Array(1,2,1);
    	var ndefRecord2 = new NdefLibrary.NdefRecord(NdefLibrary.NdefRecord.TypeNameFormatType.Uri, recrodType);
     	ndefRecord2.setPayload(recrodPayload);
     	
     	
     	ndefMessage.push(ndefRecord2);
     	equal(ndefMessage.length(), 1);
     	
     	deepEqual(ndefMessage.toByteArray(), [211,7,3,1,3,1,3,5,6,7,1,2,1]);
     	
     	
     	ndefMessage.push(ndefRecord2);
     	equal(ndefMessage.length(), 2);
     	
     	deepEqual(ndefMessage.toByteArray(), [147,7,3,1,3,1,3,5,6,7,1,2,1,83,7,3,1,3,1,3,5,6,7,1,2,1]);
     });

 
     test('toByteArray no short record', function() {
     	var ndefMessage = new NdefLibrary.NdefMessage();
     	
     	var recordType = new Array(1,3,1,3,5,6,7);
     	var recordPayload = new Array(1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1);
    	var ndefRecord2 = new NdefLibrary.NdefRecord(NdefLibrary.NdefRecord.TypeNameFormatType.Uri, recordType);
     	ndefRecord2.setPayload(recordPayload);
     	ndefMessage.push(ndefRecord2);
     	
     	deepEqual(ndefMessage.toByteArray(), [195,7,0,0,3,123,1,3,1,3,5,6,7,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1]);
     });
     
     module('Statics');
     
     test('static from byte array', function() {
     	var ndefRecord = new NdefLibrary.NdefRecord();
     	var ndefMessage = new NdefLibrary.NdefMessage(ndefRecord);
     	var ndefMessageByteArray = ndefMessage.toByteArray();
     	
     	var ndefMessage2 = NdefLibrary.NdefMessage.fromByteArray(ndefMessageByteArray);
     	
     	deepEqual(ndefMessage, ndefMessage2);
     	deepEqual(ndefMessage.toByteArray(), ndefMessage2.toByteArray());
     });
     
     test('static from byte array', function() {
     	var recrodType = new Array(1,3,1,3,5,6,7);
     	var recrodPayload = new Array(1,2,1);
     	var id = new Array(3,3);
    	var ndefRecord2 = new NdefLibrary.NdefRecord(NdefLibrary.NdefRecord.TypeNameFormatType.NfcRtd, recrodType);
     	ndefRecord2.setPayload(recrodPayload);
     	ndefRecord2.setId(id);
     	
     	var ndefMessage = new NdefLibrary.NdefMessage(ndefRecord2);
     	var ndefMessage2 = NdefLibrary.NdefMessage.fromByteArray(ndefMessage.toByteArray());
     	
     	deepEqual(ndefMessage2, ndefMessage);
     	deepEqual(ndefMessage2.toByteArray(), ndefMessage.toByteArray());
     	
     	var ndefMessage3 = new NdefLibrary.NdefMessage(ndefRecord2,ndefRecord2);
     	ndefMessage2 = NdefLibrary.NdefMessage.fromByteArray(ndefMessage3.toByteArray());
     	notDeepEqual(ndefMessage2, ndefMessage);
     	notDeepEqual(ndefMessage2.toByteArray(), ndefMessage.toByteArray());
     	
     	
     	var recrodType3 = new Array(0,0);
     	var recrodPayload3 = new Array(0,0);
     	var id3 = new Array(0,0);
    	var ndefRecord3 = new NdefLibrary.NdefRecord(NdefLibrary.NdefRecord.TypeNameFormatType.Uri, recrodType3);
     	ndefRecord3.setPayload(recrodPayload3);
     	ndefRecord3.setId(id3);
     	
     	ndefMessage3 = new NdefLibrary.NdefMessage(ndefRecord3);
     	ndefMessage2 = NdefLibrary.NdefMessage.fromByteArray(ndefMessage3.toByteArray());
     	notDeepEqual(ndefMessage2, ndefMessage);
     	notDeepEqual(ndefMessage2.toByteArray(), ndefMessage.toByteArray());
     });

   } ());
   </script>
</body>
</html>
